void UIBuildSettingsWeb::StoreSettings() { BuildSystem* buildSystem = GetSubsystem<BuildSystem>(); WebGLSettings settings; TBStr text; appNameEdit_->GetText(text); settings.appName = text.CStr(); text.Clear(); appPackageEdit_->GetText(text); settings.package = text.CStr(); text.Clear(); productNameEdit_->GetText(text); settings.productName = text.CStr(); text.Clear(); companyNameEdit_->GetText(text); settings.companyName = text.CStr(); text.Clear(); buildSystem->GetBuildSettings()->SetWebGLSettings(settings); }
String BuildIOS::GenerateEntitlements() { BuildSystem* buildSystem = GetSubsystem<BuildSystem>(); IOSBuildSettings settings = buildSystem->GetBuildSettings()->GetIOSSettings(); String app_identifer = settings.appidPrefix + "."; app_identifer += settings.package; String team_identifier = settings.appidPrefix; String keychain_access_group = app_identifer; String entitlements = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; entitlements += "<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n"; entitlements += "<plist version=\"1.0\">\n"; entitlements += "<dict>\n"; entitlements += "<key>application-identifier</key>\n"; entitlements.AppendWithFormat("<string>%s</string>\n", app_identifer.CString()); entitlements += "<key>com.apple.developer.team-identifier</key>\n"; entitlements.AppendWithFormat("<string>%s</string>\n", team_identifier.CString()); entitlements += "<key>get-task-allow</key>\n"; entitlements += "<true/>\n"; entitlements += "<key>keychain-access-groups</key>\n"; entitlements += "<array>\n"; entitlements.AppendWithFormat("<string>%s</string>\n", keychain_access_group.CString()); entitlements += "</array>\n"; entitlements += "</dict>\n"; entitlements += "</plist>\n"; return entitlements; }
void BuildIOS::Build(const String& buildPath) { buildPath_ = buildPath + "/IOS-Build"; Initialize(); FileSystem* fileSystem = GetSubsystem<FileSystem>(); if (fileSystem->DirExists(buildPath_)) fileSystem->RemoveDir(buildPath_, true); #ifdef ATOMIC_PLATFORM_WINDOWS String buildSourceDir = fileSystem->GetProgramDir(); #else String buildSourceDir = fileSystem->GetAppBundleResourceFolder(); #endif String buildAppSourceDir = buildSourceDir + "Deployment/IOS/AtomicPlayer.app"; fileSystem->CreateDir(buildPath_); String buildDestDist = buildPath_ + "/AtomicPlayer.app"; fileSystem->CreateDir(buildDestDist); String resourcePackagePath = buildDestDist + "/AtomicResources.pak"; GenerateResourcePackage(resourcePackagePath); fileSystem->Copy(buildAppSourceDir + "/AtomicPlayer", buildDestDist + "/AtomicPlayer"); fileSystem->Copy(buildAppSourceDir + "/PkgInfo", buildDestDist + "/PkgInfo"); BuildSystem* buildSystem = GetSubsystem<BuildSystem>(); IOSBuildSettings settings = buildSystem->GetBuildSettings()->GetIOSSettings(); fileSystem->Copy(settings.provisionFile, buildDestDist + "/embedded.mobileprovision"); String entitlements = GenerateEntitlements(); String plist = GenerateInfoPlist(); File file(context_, buildPath_ + "/AtomicPlayer.app.xcent", FILE_WRITE); if (file.IsOpen()) { file.Write(entitlements.CString(), entitlements.Length()); file.Close(); } File pfile(context_, buildDestDist + "/Info.plist", FILE_WRITE); if (pfile.IsOpen()) { pfile.Write(plist.CString(), plist.Length()); pfile.Close(); } RunConvertPList(); }
String BuildIOS::GenerateInfoPlist() { BuildSystem* buildSystem = GetSubsystem<BuildSystem>(); IOSBuildSettings settings = buildSystem->GetBuildSettings()->GetIOSSettings(); String plist = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; plist += "<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n"; plist += "<plist version=\"1.0\">\n"; plist += "<dict>\n"; plist += "<key>CFBundleDevelopmentRegion</key>\n"; plist += "<string>English</string>\n"; plist += "<key>CFBundleExecutable</key>\n"; plist += "<string>AtomicPlayer</string>\n"; plist += "<key>CFBundleGetInfoString</key>\n"; plist += "<string>\"Atomic Player\"</string>\n"; plist += "<key>CFBundleIconFile</key>\n"; plist += "<string></string>\n"; plist += "<key>CFBundleIdentifier</key>\n"; plist.AppendWithFormat("<string>%s</string>\n", settings.package.CString()); plist += "<key>CFBundleInfoDictionaryVersion</key>\n"; plist += "<string>6.0</string>\n"; plist += "<key>CFBundleLongVersionString</key>\n"; plist += "<string></string>\n"; plist += "<key>CFBundleName</key>\n"; plist += "<string></string>\n"; plist += "<key>CFBundlePackageType</key>\n"; plist += "<string>APPL</string>\n"; plist += "<key>CFBundleShortVersionString</key>\n"; plist += "<string></string>\n"; plist += "<key>CFBundleSignature</key>\n"; plist += "<string>????</string>\n"; plist += "<key>CFBundleVersion</key>\n"; plist += "<string></string>\n"; plist += "<key>CSResourcesFileMapped</key>\n"; plist += "<true/>\n"; plist += "<key>LSRequiresCarbon</key>\n"; plist += "<true/>\n"; plist += "<key>NSHumanReadableCopyright</key>\n"; plist += "<string>\"(c) Your Company\"</string>\n"; plist += "<key>CFBundleIconFiles</key>\n"; plist += "<array>\n"; plist += "<string></string>\n"; plist += "</array>\n"; plist += "</dict>\n"; plist += "</plist>\n"; return plist; }
void UIBuildSettingsWeb::Refresh() { BuildSystem* buildSystem = GetSubsystem<BuildSystem>(); const WebGLSettings& settings = buildSystem->GetBuildSettings()->GetWebGLSettings(); appNameEdit_->SetText(settings.appName.CString()); appPackageEdit_->SetText(settings.package.CString()); productNameEdit_->SetText(settings.productName.CString()); companyNameEdit_->SetText(settings.companyName.CString()); }